
#ifndef CMD_OBJ_EXT_H
#define CMD_OBJ_EXT_H

#include <stdio.h>
#include <stdint.h>
#include <sys/time.h>
#include <iostream>
#include <string>
#include "intf_auth_info.h"
#include "cmd_obj.h"

class CCmdObjExt 
: public CCmdObj
{
public:
	CCmdObjExt() 
	    : m_qwUid(0)
          , m_qwDomainId(0)
          , m_dwEncodingTypeIn(0)
          , m_dwEncodingTypeOut(0)
          , m_qwSessionId(0)
          , m_qwStartTime(0)
          , m_qwPrevTime(0)
          , m_dwReserve1(0)
          , m_dwReserve2(0)
          , m_dwReserve3(0)
          , m_dwReserve4(0)
          , m_qwReserve5(0)
          , m_qwReserve6(0)
          , m_qwReserve7(0)
          , m_qwReserve8(0)
	    {}
public:
  void Reset()
  {
    CCmdObj::Reset();
    m_qwUid = 0;
    m_qwDomainId = 0;
    m_dwEncodingTypeIn = 0;
    m_dwEncodingTypeOut = 0;
    m_qwSessionId = 0;
    m_qwStartTime = 0;
    m_qwPrevTime = 0;
    
  }
public:
    void setUid(int64_t qwUid) { m_qwUid = qwUid; }
    int64_t getUid() const { return m_qwUid; }

    void setDomainId(int64_t qwDomainId) { m_qwDomainId = qwDomainId; }
    int64_t getDomainId() const { return m_qwDomainId; }

    void setEncodingTypeIn(int32_t dwEncodingTypeIn) { m_dwEncodingTypeIn = dwEncodingTypeIn; }
    int32_t getEncodingTypeIn() const { return m_dwEncodingTypeIn; }
    void setEncodingTypeOut(int32_t dwEncodingTypeOut) { m_dwEncodingTypeOut = dwEncodingTypeOut; }
    int32_t getEncodingTypeOut() const { return m_dwEncodingTypeOut; }

    void setSessionId(int64_t qwSessionId) { m_qwSessionId = qwSessionId; }
    int64_t getSessionId() const { return m_qwSessionId; }

    void setStartTime(int64_t qwStartTime) { m_qwStartTime = qwStartTime; }
    int64_t getStartTime() const { return m_qwStartTime; }

    void setPrevTime(int64_t qwPrevTime) { m_qwPrevTime = qwPrevTime; }
    int64_t getPrevTime() const { return m_qwPrevTime; }

    void setReserve1(int32_t dwReserve1) { m_dwReserve1 = dwReserve1; }
    int32_t getReserve1() const { return m_dwReserve1; }
    void setReserve2(int32_t dwReserve2) { m_dwReserve2 = dwReserve2; }
    int32_t getReserve2() const { return m_dwReserve2; }
    void setReserve3(int32_t dwReserve3) { m_dwReserve3 = dwReserve3; }
    int32_t getReserve3() const { return m_dwReserve3; }
    void setReserve4(int32_t dwReserve4) { m_dwReserve4 = dwReserve4; }
    int32_t getReserve4() const { return m_dwReserve4; }

    void setReserve5(int64_t dwReserve5) { m_qwReserve5 = dwReserve5; }
    int64_t getReserve5() const { return m_qwReserve5; }
    void setReserve6(int64_t dwReserve6) { m_qwReserve6 = dwReserve6; }
    int64_t getReserve6() const { return m_qwReserve6; }
    void setReserve7(int64_t dwReserve7) { m_qwReserve7 = dwReserve7; }
    int64_t getReserve7() const { return m_qwReserve7; }
    void setReserve8(int64_t dwReserve8) { m_qwReserve8 = dwReserve8; }
    int64_t getReserve8() const { return m_qwReserve8; }

    void setReserve9(const std::string& sReserve9) { m_sReserve9 = sReserve9; }
    std::string getReserve9() const { return m_sReserve9; }
    void setReserve10(const std::string& sReserve10) { m_sReserve10 = sReserve10; }
    std::string getReserve10() const { return m_sReserve10; }
    void setReserve11(const std::string& sReserve11) { m_sReserve11 = sReserve11; }
    std::string getReserve11() const { return m_sReserve11; }
    void setReserve12(const std::string& sReserve12) { m_sReserve12 = sReserve12; }
    std::string getReserve12() const { return m_sReserve12; }

private:
    //ext
    int64_t m_qwUid;
    int64_t m_qwDomainId;
    int32_t m_dwEncodingTypeIn;
    int32_t m_dwEncodingTypeOut;
    int64_t m_qwSessionId;
    int64_t m_qwStartTime;
    int64_t m_qwPrevTime;
    //ext reserve int32_t
    int32_t m_dwReserve1;//
    int32_t m_dwReserve2;//
    int32_t m_dwReserve3;
    int32_t m_dwReserve4;
    //ext reserve int64_t
    int64_t m_qwReserve5;
    int64_t m_qwReserve6;
    int64_t m_qwReserve7;
    int64_t m_qwReserve8;
    //ext reserve string
    std::string m_sReserve9;
    std::string m_sReserve10;
    std::string m_sReserve11;
    std::string m_sReserve12;
};

#endif /* CMD_OBJ_H */

